home *** CD-ROM | disk | FTP | other *** search
/ Mac OS 9 Serial Number Archive / SN Archive 2023.11.04.toast / TSNG / TSNG 1.0.8 / Read Me next >
Encoding:
Text File  |  1996-04-30  |  12.5 KB  |  260 lines  |  [TEXT/R*ch]

  1. The SN# Gen
  2. ===========
  3.  
  4. As you should already know this app will generate (to a BBEdit text file) serial/registration numbers (randomizing whenever possible) for various Macintosh software.
  5.  
  6. It should go without saying, but there always seems to be a few morons out there so i'll say it anyway:
  7.  
  8. ••• DO NOT USE OR DISTRIBUTE THIS APP IN NON-ELITE ENVIRONMENTS…  •••
  9. •••           DOING SO WILL ONLY RUIN IT FOR EVERYONE             •••
  10. •••  THE FIRST TIME I HEAR OF A LEAK OF THIS APP WILL BE THE LAST •••
  11. •••                   THINK ABOUT IT…ENOUGH SAID                  •••
  12.  
  13. I ask that you do not include numbers generated by this app (at least not in wholesale fashion) in other reference lists, since: A) This app generates different numbers (whenever possible) each time it is run so that there is no quick/painless counter measure to it; B) doing so would only help to counter its effectiveness (mainly by shortening the longevity of the SN# algorithms staying static); C) it would just increase the file size of the other lists while adding little value beyond the first number.
  14.  
  15. The date and time at which the output file was generated is now included at the start of the file -- this is the zero date that all the chronologically dependent algorithms use in their calculations.
  16.  
  17. The names specified for 'Owner Name' and 'Macintosh Name' in the 'Sharing Setup' control panel are now the first two user names used for generating serial numbers from.  However this info is not saved to the 'Generated SN#s' file for security reasons -- instead you will see '<Sharing Owner Name>' and '<Sharing Machine Name>'.  This change supports the few programs which require using the 'correct' user and/or machine name to fully enable themselves. (eg: the Dejal products)
  18.  
  19. Currently you must use a resource editor if you wish to change the user/company names (you may specify up to 20) that are used during generation.  You may also change the number of copies to be licensed for (simultaneous users 1…9999, default is 10) and the number of serial numbers to generate (1…50 [this # is independent of the # of names you use], default is 3) for each product.  These values are stored in 'STR#' resources that are labeled so that changing them is  self explanatory.  In a future release i'll probably get these from a seperate text file in order to make customizing easier.
  20.  
  21. The generation of large tables is disabled by default, but you may enable it by changing the 'STR '#129 resource. The only large table implemented so far is for System's Twilight.
  22.  
  23. Ocassionally you will see output of the form:
  24.  
  25. Illegal name:    '<the illegal name>'
  26.  
  27. This only occurs when the given user name does not meet all the conditions placed upon it -- this is almost always due to the name being too short or containing only white space. (Don't be a moron -- using white space only, prefixed, or suffixed names is just dumb)
  28.  
  29. All of the serial number routines were tested with at least one number and usually more - however it is still possible that an error may have crept in, or a subtle point may have been missed during reverse engineering that only shows up some of the time --- so if you encounter an entry that doesn't work make sure you've got at least the given version of the product in question.  If it still won't work complain with the complete details and it will (probably) get fixed.
  30.  
  31. If you have new or better algorithms (in some cases there is sufficient ambiguity [not always intended!] in the checking algorithm to allow multiple solutions to the inversion problem, with complete generality being the nicest but hardest to obtain) for current (ie: non-legacy) products feel free to submit them and a few examples of _known valid_ codes. (most useful would be C code that actually compiles - but intelligeble pseudo code will do)
  32.  
  33. Another item that would be useful is the actual _correct_ format of serial numbers for products which this app generates numbers for.  (in the case of a discrepancy only -- most of the time it is possibly to fully invert the checking algorithm and thus obtain the format of the serial number, but not always, in which case a reasonable/arbitrary _working_ guess is made)
  34.  
  35. If there is some _current_ product you wish to see included here that _requires_ (ie: is dependent upon user name and/or number of copies or needs unique network serial numbers) a generator feel free to request it. 
  36.  
  37. MISSION STATEMENT:  Copy protection (CP) is an annoying nuisance that is ineffective.  Serial number generators force software publishers to either: Accept the fact that their CP scheme is useless (possibly/hopefully abandoning it and the overhead of managing serial numbers) or; change their CP method/scheme and issue new serial numbers to their entire user-base for every release of their software.  In this way the easy counter-counter-measure (of simply just checking for known elite name/password combos with each new release) that some authors (eg: Realmz's author) currently take is eliminated (since they won't know what names/numbers to target).
  38.  
  39. Future release versions will entirely supersede this release so there is _absolutely no need_ to keep old versions lying around.
  40.  
  41. Supported Products
  42. ==================
  43. 4D Online Help
  44. Aladdin Desktop Tools
  45. Apeiron
  46. AXS Online Reader
  47. Barrack
  48. CalcWorks
  49. CD Directory
  50. Chiral
  51. ColorSwitch
  52. Compact Pro
  53. Conflict Catcher
  54. Cyber Finder
  55. DeBabelizer
  56. Dejal QuickEncrypt
  57. Dejal SndCataloguer
  58. Dejal SndConverter Lite/Pro
  59. Dejal SndPlayer
  60. Dejal Text Utilities (TextConverter/TextMerge/TextSplitter)
  61. Developer VISE
  62. Developer VISE Lite
  63. DiskDup Pro
  64. DiskTools Collection
  65. DiskTracker
  66. Dome Wars
  67. Eclipse
  68. File Buddy
  69. FontBox
  70. Giza
  71. GraphicConverter
  72. MacSki
  73. Maelstrom
  74. MathType
  75. MultiClip Pro
  76. Nisus Writer
  77. Now Bundle
  78. Now Contact
  79. Now Quick&Easy
  80. Now UpToDate
  81. Now Utilities
  82. PowerBar Pro
  83. PowerReplace
  84. Ram Disk Saver
  85. Realmz
  86. Realmz - Assault on Giant Mountain
  87. Realmz - Castle in the Clouds
  88. Realmz - Prelude to Pestilence
  89. ScrapIt Pro
  90. Smaller Installer
  91. Snapz
  92. SoundEdit 16
  93. Stuffit Deluxe
  94. Stuffit InstallerMaker
  95. Swoop
  96. Systems Twilight
  97. TechTool Pro
  98. Ultima III
  99. UltraFind
  100. Updater VISE
  101. URL Manager
  102. Versatile Pro
  103.  
  104.  
  105. Miscellania for would be CP Reverse Engineers
  106. =============================================
  107.  
  108. There a only a few basic non-keydisk, non-HW Dongle copy protection schemes in wide use:
  109.  
  110. 1)    Just a SN#/Reg Code (and possibly version#/id) that has certain
  111.     mathematical/string properties.
  112. 2)  A Name/ID (given or enterable) field, a copies_Licensed field, version#,
  113.     and SN#/Reg Code which is derived by manipulating and combining the Name/ID
  114.     field and the copies_Licensed.
  115. 3)    A time (date) based/limited SN#/Reg Code of type #1 or #2 above.
  116.  
  117. All of these protection schemes can in general be circumvented by a process of reverse engineering the SN# checking algorithm(s) during runtime (by using a debugger).  In general you try to get an interrupt at or near the beginning of the SN# checking code (this step can require some insight - but 95% of the time placing a local ATrap break on GetIText, StringToNum, NumToString, DisposeDialog, HiliteControl, and/or ModalDialog will work).  Once you find the start of the checking code you simply (or sometimes not so simply) symbolically disassemble the assembly code into pseudo or C code (I use a mixture myself).  Ninety percent of the time you will see some code which reads in all the user input fields (possibly upper or lower casing them), checks to see if they are within a certain length and data type ranges (eg: Name>=4 chars with no digits, sn#=digits and >0).  After these preliminaries you get to the actual heart of the method used.  Typically you find code that does any/all of the following type of actions in various combinations:
  118.  
  119. A)    Copy/Splice field(s) or subfield(s) to/into new variable(s). (ie BlockMove)
  120. B)  Convert a string/character (not necessarily numeric) to a numeric variable
  121.     via StringToNum or a custom conversion routine (often the base involved is
  122.     not 10 but a prime or power of 2 such as 8,16, and 32). [or, inversely 
  123.     convert a number to a base b string]
  124. C)  Add/multiply/eor/ect... up the value of the characters in a string -
  125.     possibly including the length byte in the case of pascal strings.
  126. D)    Perform mathematical operations (often via library calls) such as integer
  127.     division (/), remainder upon integer division (mod,%), exclusive-oring
  128.     (xor,eor,^), oring (or,|), multiplication, addition, and subtraction. (note
  129.     be careful to observe the size and sign of the operations - ie byte, word,
  130.     long and signed or unsigned).
  131. E)    read/load in data from an internal table.  (one table of $100 longwords is
  132.     particularily popular)
  133. F)  do 1 of n manipulations as selected by the value/state of some data.
  134. G)    loop over all or some of the elements in a string/number and perform any
  135.     of these actions for each element.
  136.  
  137. The last step in the SN# checking code is almost always the direct comparison of two values (usually longwords, but sometimes character strings) -- although sometimes the comparison is distributed throughout the checking algorithm calculation itself. Sometimes one these values is simply just the numerical value of your SN#, but more often the slightly indirect method of mangling both your SN#/reg code and all other fields into character string or numeric values and then comparing them is used.  This second approach and generalizations upon it usually prove more difficult to invert in general -- as it requires reversing (at least partially inverting) a greater number of steps, often with more restrictions on intermediate values as opposed to restrictions on the terminal or input variables.
  138.  
  139. Version History
  140. ===============
  141.  
  142. 1.0.9 (DNE yet… this is a 'to do' list for me)
  143. -----
  144. include arbitrary length longint library and implement generator for loanPro
  145.  
  146. 1.0.8 (large table generation made user configurable)
  147. -----
  148. added a switch for the generation of large tables ('STR '#129), thus;
  149. the "System's Twilight Passwords" file is no longer included.
  150. updated the supported products list to include the 1.0.7 additions… (whoops!)
  151.  
  152. New generators…
  153.  
  154. MacSki 1.6.x (1.6)
  155. Nisus Writer 4.1.x (4.1.3)
  156. PowerReplace 4.5.x (4.5.5)
  157.  
  158. 1.0.7 (another minor update with some tweaking)
  159. -----
  160. added finder icons and balloon help string.
  161. output TEXT file creator made user configurable. (change 'STR ' #128)
  162.  
  163. Added yet more generators still…
  164.  
  165. Conflict Catcher 3.x.x (3.0.4)
  166. MultiClip Pro 3.2 (3.2alpha)
  167. Ram Disk Saver 2.0.x (2.0)
  168. URL Manager 1.1.x (1.1.4)
  169.  
  170. 1.0.6 (added header time stamp and a few new generators)
  171. -----
  172. As a aid to maintenance I'm changing the format used to list new generators to include, in brackets, the latest version actually tested.
  173.  
  174. Added Generator for:
  175.  
  176. CalcWorks 1.5.x (1.5.1)
  177. CD Directory 1.0.x (1.0.2)
  178. FontBox 1.7.x (1.7.1)       [only 3 unique SN#'s are possible per day]
  179. SoundEdit 16 2.0.x (2.0)
  180.  
  181. 1.0.5 (in case you were wondering 1.0.4 only lasted a couple of hours…)
  182. -----
  183. Changed some of the default names to coincide with the names that Bookworm is using so that it is easier to (further) verify my code against (a greater number of) known valid serial numbers.
  184.  
  185. Added Generator for:
  186.  
  187. DiskTracker 1.0.x (1.0.2)
  188.  
  189. 1.0.4 (a few new generators plus major internal restructuring)
  190. -----
  191. Sharing Setup Owner/Machine names are now used as the first two user names.
  192. Reordered output so products are listed in _mostly_ alphabetical order.
  193.  
  194. Added Generators for:
  195.  
  196. Now Utilities 6.0 (6.0)
  197. Dejal QuickEncrypt 2.x (2.1)
  198. Dejal SndConverter Lite/Pro 2.x (2.3)
  199. Dejal SndCataloguer 2.x (2.3)
  200. Dejal SndPlayer 2.x (2.3)
  201. Dejal TextUtilities (TextConverter 1.x/TextMerge 2.x/TextSplitter 2.x)
  202.  
  203. 1.0.3 (now compiled with CodeWarrior 8 - the lmodu glue code bug is no more)
  204. -----
  205. Added Generators for:
  206.  
  207. 4D Online Help 3.0.x (3.0.5)
  208. Apeiron
  209. Barrack 1.0.x
  210. Chiral
  211. ColorSwitch 2.3.x (2.3.0)
  212. DiskDup Pro 1.0.3 (1.0.3)
  213. Eclipse 3.x.x
  214. File Buddy 3.x.x (3.4.3)
  215. Giza 2.x.x (2.0.0)
  216. Maelstrom
  217. MathType 3.x
  218. PowerBar Pro 2.5.x (2.5)
  219. Snapz
  220. Swoop
  221. TechTool Pro 1.0.x (1.0.1)
  222. UltraFind 2.x.x (2.2)
  223.  
  224. 1.0.2 (Initial release under the name 'The SN# Gen')
  225. -----
  226. Added Generators for:
  227.  
  228. AXS Online Reader 1.0.x
  229. Aladdin Desktop Tools 1.0.x (1.0.1)
  230. Compact Pro 1.5.x
  231. Cyber Finder 2.x
  232. DeBabelizer 1.6.x
  233. DiskTools Collection 3.x.y
  234. Dome Wars 1.x.x
  235. GraphicConverter 2.x.x (2.4)
  236. Now Bundle 3.5.x
  237. Now Contact 3.5.x
  238. Now Quick&Easy 1.0.x
  239. Now UpToDate 3.5.x
  240. Now Utilities 5.0.x (5.0.2)
  241. Realmz 2.x.x
  242. Realmz Assault on Giant Mountain
  243. Realmz Castle in the Clouds
  244. Realmz Prelude to Pestilence
  245. ScrapIt Pro 5.x.x
  246. Smaller Installer 1.1.x
  247. Stuffit Deluxe 3.5.x
  248. Stuffit InstallerMaker 2.0.x
  249. Systems Twilight 1.0.x Access Codes & Passwords
  250. Ultima III 1.x
  251. Versatile Pro 1.6.x
  252.  
  253. 1.0.1,1.0 (premature proof of concept releases)
  254. ---------
  255. Generators for:
  256.  
  257. Developer VISE 3.5
  258. Developer VISE Lite 3.5
  259. Updater VISE 1.0.1
  260.